A wide variety of mobile computing devices such as cellular telephones, pagers, Personal Digital Assistants (PDAs), and others are commonly in use. Software available for use on these mobile devices includes a wide range of applications such as games, phonebooks, calendars, email, web browsers, and others. These applications may be distributed preloaded on the mobile device. For example, a cellular telephone typically includes software for maintaining a phonebook. In other cases, the software may be installed on the device by the user after purchase of the mobile device.
Typically, to install software on a mobile device a user has two choices. First, the user may use a personal computer or other, similar computing device to locate and download some desired software. For example, the user may browse an online catalog of available applications and select one or more for download. Once the application is downloaded to the user's computer, the user then uses a docking cradle, cable, infrared beaming, a wireless network, or other means to connect the mobile device with the personal computer and synchronize or otherwise transfer the software from the personal computer to the mobile device. Finally, the user executes an installation or setup program on the mobile device to install the software and make it available for execution on the mobile device.
Alternatively, the mobile device may have browser software installed that allows the user to “surf” or browse one or more online catalogs for available software. This method requires the user to browse through a potentially large number of software selections, locate, and download a desired selection. Once the application has been downloaded, the user executes an installation or setup program on the mobile device.
However, both of these methods present similar problems. First, these methods are difficult to use and are time consuming. For example, browsing an online catalog is inherently very slow from a mobile device and hence frustrating for the user. Additionally, online catalogs are typically complex and therefore difficult to navigate. Once an application is located, downloads from online catalogs typically require more end-user interaction and are cumbersome overall. For example, using a desktop computer to locate, download, and install an application is time-consuming, cumbersome, and requires the user to be next to his PC with a connection to the mobile device.
Further, these methods do not provide a way in which a user of one mobile device can initiate a download to a different mobile device or even inform another device of available software. Therefore, if a user owns more than one mobile device and wishes to install the same software on each device, he must locate, download, and install the software for each mobile device separately. Similarly, there is no way for one user to conveniently inform another of available software that may be of interest to that user. It is with respect to these considerations and others that the present invention has been made.